package com.atwulidun.iterator15;

import java.util.ArrayList;
import java.util.List;

// 聚合接口，定义了返回某种数据结构对应的迭代器的方法
public interface Aggregate {
    Iterator createIterator();
}

// 聚合接口的具体实现类
class ConcretAggregate implements Aggregate{
    // 这里要维护一个数据结构
    List<Object> list = new ArrayList<>();

    @Override
    public Iterator createIterator() {
        // 返回该数据结构所对应的迭代器对象的时候要把该数据结构也传进迭代器的构造方法中
        return new ConcretIterator(list);
    }

    // 对该数据结构进行添加元素的方法
    public void add(Object object) {
        list.add(object);
    }
}